/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.edu.unifei.VRaptor.modelo;

import java.util.ArrayList;
import java.util.Calendar;
import java.util.Iterator;
import java.util.List;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToMany;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Temporal;

/**
 *
 * @author Todo Poderoso
 */
@Entity
public class ProcessoSeletivo {

    @OneToOne
    private Empresa empresa;
    @OneToMany
    private List<Curso> cursos = new ArrayList<Curso>();
    @ManyToMany
    private List<Aluno> alunos = new ArrayList<Aluno>();
    @Temporal(javax.persistence.TemporalType.DATE)
    private Calendar dataInicio;
    @Temporal(javax.persistence.TemporalType.DATE)
    private Calendar dataFim;
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private int id;
    private int numeroVagas;
    private String descricao;
    private String requisitos;
    private int cargaHoraria;
    private float bolsaAuxilio;

    public float getBolsaAuxilio() {
        return bolsaAuxilio;
    }

    public void setBolsaAuxilio(float bolsaAuxilio) {
        this.bolsaAuxilio = bolsaAuxilio;
    }

    public int getCargaHoraria() {
        return cargaHoraria;
    }

    public void setCargaHoraria(int cargaHoraria) {
        this.cargaHoraria = cargaHoraria;
    }

    public Calendar getDataFim() {
        return dataFim;
    }

    public void setDataFim(Calendar dataFim) {
        this.dataFim = dataFim;
    }

    public Calendar getDataInicio() {
        return dataInicio;
    }

    public void setDataInicio(Calendar dataInicio) {
        this.dataInicio = dataInicio;
    }

    public String getDescricao() {
        return descricao;
    }

    public void setDescricao(String descricao) {
        this.descricao = descricao;
    }

    public Empresa getEmpresa() {
        return empresa;
    }

    public void setEmpresa(Empresa empresa) {
        this.empresa = empresa;
    }

    public int getNumeroVagas() {
        return numeroVagas;
    }

    public void setNumeroVagas(int numeroVagas) {
        this.numeroVagas = numeroVagas;
    }

    public String getRequisitos() {
        return requisitos;
    }

    public void setRequisitos(String requisitos) {
        this.requisitos = requisitos;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }
    
    public boolean addCurso(Curso c) {
        return cursos.add(c);
    }

    public Curso removeCurso(int index) {
        return cursos.remove(index);
    }

    public int sizeOfCursos() {
        return cursos.size();
    }

    public Iterator<Curso> iteratorCursos() {
        return cursos.iterator();
    }
    
    public boolean addAluno(Aluno a) {
        return alunos.add(a);
    }

    public Aluno removeAluno(int index) {
        return alunos.remove(index);
    }

    public int sizeOfAlunos() {
        return alunos.size();
    }

    public Iterator<Aluno> iteratorAluno() {
        return alunos.iterator();
    }
    
    public List<Curso> getCursos(){
        return cursos;
    }
}
